home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / ad.arc / ADSORT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-26  |  10.9 KB  |  266 lines

  1. 10  DEFINT A-Z
  2. 20  ON ERROR GOTO 170
  3. 30  ARR$=CHR$(17)+CHR$(196)+CHR$(217):C1$=CHR$(34):T1$="    THE ISS PERSONAL ADDRESS BOOK"
  4. 35  O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F4: SORT menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"+O2$+"F9:SAVE/CONT"
  5. 40  DIM U$(16),DQ$(12),V$(16),V(16),V1$(16):FOR I= 1 TO 12:READ DQ$(I):NEXT
  6. 50  DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
  7. 60  REM
  8. 70  REM         TEMPORARY FILE
  9. 75  OPEN "TEMPOR.TEM" FOR INPUT AS #1
  10. 76  INPUT #1, FILE$,FILM$,FIL$:CLOSE #1:DIM ZK(40)
  11. 80  OPEN FILM$ FOR INPUT AS #3
  12. 90  INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3
  13. 117  DIM D$(NN+2),D(NN),Z(NN+2),D1$(NN+2)
  14. 135  GOSUB 5200:GOTO 320
  15. 140  A$="EDIT":Y1$="2":GOTO 146
  16. 141  A$="DELETE":Y1$="3":GOTO 146
  17. 142  A$="SEARCH":Y1$="5":GOTO 146
  18. 143  A$="PRINT":Y1$="6":GOTO 146
  19. 144  A$="MAIN":Y1$="1"
  20. 146  CLS:GOSUB 255:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES":GOSUB 1192
  21. 148  A$="AD"+A$:RUN A$
  22. 150  DEF SEG = 0:POKE 1050, PEEK(1052)
  23. 151  Y$=INKEY$:IF Y$="" THEN 151 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
  24. 152  IF Y$="N" OR Y$="Y" THEN CLS:RETURN ELSE GOSUB 35040:GOTO 150
  25. 161  CLS:COLOR 3,0,1:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0:GOSUB 35030
  26. 162  GOSUB 150
  27. 163  IF Y$="N" THEN 320
  28. 165  CLS:A$="B":GOSUB 1192:LOCATE 12,30:PRINT "   GOODBYE  ":SYSTEM
  29. 170  IF ERL = 280 THEN RESUME 285
  30. 173  IF ERL=4010 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030 ELSE 180
  31. 174  Y$=INKEY$:IF Y$="" THEN 174
  32. 175  RESUME 320
  33. 180  IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ":COLOR 7,1:LOCATE 1,1
  34. 220  IF ERR = 61 THEN PRINT "DISK FULL.  LOAD FORMATTED DISK AND 'CONTINUE' ":STOP
  35. 230  IF ERR = 61 THEN RESUME 320
  36. 240  RESUME 320
  37. 255  IF YSAVE=0 THEN RETURN ELSE CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;
  38. 256  COLOR 3,0:LOCATE 12,20:PRINT "Do you want to save the DATA?  <Y>es or <N>o.":COLOR 3,0:LOCATE 12,52:COLOR 14,0:PRINT "Y":LOCATE 12,61:PRINT "N":COLOR 3,0:GOSUB 35030
  39. 257  GOSUB 150
  40. 258  IF Y$="N" THEN YSAVE=0:CLS:RETURN
  41. 260  CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0
  42. 261  CLOSE:LOCATE 12,10:PRINT "Do you want to save the file under a different filename?":LOCATE 14,30:PRINT " <Y>es or <N>o? " :COLOR 14,0:LOCATE 14,32:PRINT "Y":LOCATE 14,41:PRINT "N":COLOR 3,0:GOSUB 35030
  43. 262  GOSUB 150:IF Y$="N" THEN 268
  44. 263  IF YSAVE=1 OR Y1$="4" THEN 270
  45. 264  Y1$="4":A$="SORT":CLOSE:CHAIN "ADFILES",15,ALL
  46. 268  CLS:LOCATE 12,20:PRINT "Saving data in ";FILE$:GOSUB 1155:CLS:RETURN
  47. 270  DEF SEG =&H40:POKE &H17,&H40
  48. 271  LOCATE 22,40:COLOR 14,0:PRINT "     F4";:COLOR 3,0:PRINT " = RETURN TO SORT MENU"
  49. 272  LOCATE 10,33:PRINT "Enter FILENAME":LOCATE 12,29:PRINT "[EXAMPLE:  B:ZIP-FIL]":LOCATE 14,30:PRINT "Default drive is ";F$:LOCATE 16,32:COLOR 14,0:GOSUB 35030:INPUT "FILENAME ... ",FILET$
  50. 274  Z=INSTR(1,FILET$,":"):IF Z=0 THEN FILET$=F$+FILET$
  51. 276  Z =INSTR(1,FILET$,"."):IF Z<>0 THEN FILT$=LEFT$(FILET$,Z-1) ELSE FILT$=FILET$
  52. 277  FILM2$=FILT$+".ISS":FILET$=FILT$+".DAT"
  53. 280  OPEN FILM2$ FOR INPUT AS #3
  54. 281  LOCATE 18,25:PRINT "Confirm Overwrite of ";:COLOR 9,7:PRINT FILET$:COLOR 12,0:LOCATE 19,35:PRINT "<Y> or <N>":COLOR 3,0
  55. 282  Y$=INKEY$:IF Y$="" THEN 282 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
  56. 283  IF Y$="N" THEN RETURN 320 ELSE IF Y$="Y" THEN 285 ELSE GOSUB 35040:GOTO 282
  57. 285  CLOSE #3:CLS:LOCATE 12,27:PRINT "Saving data in ";FILET$ :LOCATE 20,35:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
  58. 290  CLOSE:DEF SEG =&H40:POKE &H17,&H0:YNEW$="Y":OPEN FILET$ AS #1 LEN = 356:GOSUB 1200:CLS:RETURN
  59. 295  REM
  60. 300  REM                    SORT ROUTINE
  61. 310  REM
  62. 320  REM
  63. 325  X1$="SORT":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(30):Q$=CHR$(27)
  64. 330  CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1
  65. 340  LOCATE 1,1:PRINT TAB(10);"SORT MENU":PRINT :PRINT "  INPUT:  ":LOCATE 10,1
  66. 370  COLOR 3,0:PRINT TAB(4);"0)NONE":PRINT TAB(4);"1)NAME":PRINT TAB(4);"2)CITY":PRINT TAB(4);"3)STATE":PRINT TAB(4);"4)ZIP CODE - numerical order":PRINT TAB(4);"5)BIRTHDAY - Chronological order"
  67. 375  PRINT TAB(4);"6)HOME Phone":PRINT TAB(4);"7)OFFICE Phone":PRINT TAB(4);"8)NOTE":PRINT TAB(4);"9)COMPANY"
  68. 380  COLOR 14,0:LOCATE 10,4:PRINT "0":LOCATE 11,4:PRINT "1":LOCATE 12,4:PRINT "2":LOCATE 13,4:PRINT "3":LOCATE 14,4:PRINT "4":LOCATE 15,4:PRINT "5":LOCATE 16,4:PRINT "6"
  69. 385  LOCATE 17,4:PRINT "7":LOCATE 18,4:PRINT "8":LOCATE 19,4:PRINT "9"
  70. 400  REM
  71. 401  COLOR 3,0:LOCATE 17,40:PRINT "KEY  F1 = Return to Main menu"
  72. 402  LOCATE 18,40:COLOR 14,0:PRINT "     F4";:COLOR 3,0:PRINT " = RETURN TO SORT MENU"
  73. 403  LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
  74. 404  LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
  75. 405  LOCATE 21,40:PRINT "     F9 = Save/continue"
  76. 406  LOCATE 22,40:PRINT "    F10 = HELP"
  77. 407  COLOR 3,0:LOCATE 23,40:PRINT "Alt F10 = QUIT"
  78. 408  LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
  79. 410  GOSUB 1500
  80. 460  REM  SORT
  81. 470  CLS:LOCATE 25,1:COLOR 0,7:PRINT O1$;:COLOR 3,0,1:LOCATE 1,1
  82. 475  LOCATE 12,24:PRINT "PLEASE WAIT, READING RECORDS ...";
  83. 480  GOSUB 2000
  84. 485  GET #4,NN+1:K=VAL(V$(16))
  85. 490  IF L2=0 THEN 515
  86. 492  IF L1<>2 THEN 505
  87. 495  FOR I= 1 TO NN:GET #4,I:D$(I)=MID$(V$(2),5,VAL(V$(2)))+MID$(V$(1),5,VAL(V$(1)))+MID$(V$(L2),5,VAL(V$(L2)))+V$(16):NEXT
  88. 500  GOTO 570
  89. 505  FOR I= 1 TO NN:GET #4,I:D$(I)=MID$(V$(L1),5,VAL(V$(L1)))+MID$(V$(L2),5,VAL(V$(L2)))+V$(16):NEXT
  90. 510  GOTO 570
  91. 515  IF L1<>2 THEN 525
  92. 516  FOR I= 1 TO NN:GET #4,I:D$(I)=MID$(V$(2),5,VAL(V$(2)))+MID$(V$(1),5,VAL(V$(1)))+V$(16):NEXT
  93. 520  GOTO 570
  94. 525  FOR I= 1 TO NN:GET #4,I:D$(I)=MID$(V$(L1),5,VAL(V$(L1)))+V$(16):NEXT
  95. 570  COLOR 3,0,1:LOCATE 12,20:PRINT SPACE$(40):LOCATE 12,15:PRINT "PLEASE WAIT, SORTING ... ";
  96. 575  GOSUB 2100
  97. 577  FOR I= 1 TO NN:Z(I)=VAL(RIGHT$(D$(I),5)):NEXT
  98. 578  GOSUB 1000
  99. 580  YS$="N"
  100. 590  CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 0,7
  101. 600  LOCATE 6,31: PRINT " FINISH SORTING ":COLOR 3,0:LOCATE 12,17:PRINT "Do you want to see the list of names in file?":LOCATE 14,33:PRINT "<Y>es or <N>o"
  102. 610  COLOR 14,0:LOCATE 14,34:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 31,0:LOCATE 16,39:PRINT "?":COLOR 3,0:GOSUB 35030
  103. 620  GOSUB 150
  104. 630  IF Y$="N" THEN 640
  105. 635  GOSUB 670
  106. 640  CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;
  107. 645  COLOR 3,0:LOCATE 12,14:PRINT "Do you want to save the sorted DATA?  <Y>es or <N>o.":COLOR 3,0:LOCATE 12,53:COLOR 14,0:PRINT "Y":LOCATE 12,62:PRINT "N":COLOR 3,0:GOSUB 35030
  108. 650  GOSUB 150
  109. 655  IF Y$="N" THEN 320 ELSE FOR I= 1 TO 9:KEY(I) OFF:NEXT :GOSUB 260
  110. 660  IF YNEW$="Y" THEN GOSUB 1310
  111. 665  GOTO 135
  112. 670  REM
  113. 680  IF L1<>2 THEN L3=L1 ELSE L3=L2
  114. 690  ON L3 GOTO 695,695,719,695,700,705,710,712,714,716,718
  115. 695  X$="":GOTO 720
  116. 700  X$=" CITY ":LN=5:LM=45:GOTO 720
  117. 705  X$=" STATE ":LN=6:LM=45:GOTO 720
  118. 710  X$=" ZIPCODE ":LN=7:LM=45:GOTO 720
  119. 712  X$=" BIRTHDAY ":LN=8:LM=45:GOTO 720
  120. 714  X$=" NOTE ":LN=9:LM=45:GOTO 720
  121. 716  X$=" HOME TELEPHONE ":LN=10:LM=45:GOTO 720
  122. 718  X$=" OFFICE TELEPHONE ":LN=11:LM=45:GOTO 720
  123. 719  X$=" COMPANY ":LN=3:LM=45:GOTO 720
  124. 720  GOSUB 900
  125. 730  FOR I= 1 TO NN:GET #4,Z(I)
  126. 735  Y$=INKEY$:IF Y$=CHR$(27) THEN RETURN
  127. 740  M=M+1
  128. 755  I$=STR$(I):IF I<10 THEN I$="  "+I$
  129. 756  IF I>9 AND I<100 THEN I$=" "+I$
  130. 760  IF L2=0 AND L1<2 THEN PRINT TAB(2);I$;SPACE$(10);MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2))):GOTO 770
  131. 765  PRINT I$;SPACE$(10);MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)));:LOCATE ,LM:PRINT MID$(V$(LN),5,VAL(V$(LN)))
  132. 770  IF M<20 THEN 810 ELSE LOCATE 23,10:COLOR 10,0,1:PRINT "HIT ANY KEY TO CONTINUE or <Esc> to EXIT":LOCATE 23,38:COLOR 14,0,1:PRINT "Esc":COLOR 3,0:GOSUB 35030
  133. 780  Y$=INKEY$: IF Y$="" THEN 780
  134. 785  IF Y$=CHR$(27) THEN RETURN
  135. 790  GOSUB 900
  136. 810  NEXT I
  137. 820  IF M=0 THEN RETURN ELSE LOCATE 23,10:COLOR 10,0,1:PRINT "HIT ANY KEY TO CONTINUE";SPACE$(20):COLOR 3,0:GOSUB 35030:M=0
  138. 830  Y$=INKEY$: IF Y$="" THEN 830
  139. 840  RETURN
  140. 900  CLS:LOCATE 25,1:COLOR 0,7:PRINT O1$;:M=0
  141. 910  LOCATE 23,10:COLOR 10,0,1:PRINT SPACE$(23);"HIT <Esc> to EXIT":LOCATE 23,38:COLOR 14,0,1:PRINT "Esc":LOCATE 1,1
  142. 920  COLOR 14,0,1:PRINT " ADDRESS #":LOCATE 1,20:PRINT " NAME ":LOCATE 1,50:PRINT X$:COLOR 3,0:PRINT
  143. 930  RETURN
  144. 1000  IF L1<>2 THEN FOR I=1 TO 26:ZK(I)=1:NEXT ELSE 1003
  145. 1002  FOR I=27 TO 36:ZK(I)=0:NEXT:GOTO 1026
  146. 1003  FOR I=1 TO 36:ZK(I)=0:NEXT
  147. 1005  FOR I= NN TO 1 STEP -1
  148. 1007  IF D$(I)="" THEN 1018
  149. 1010  FOR J= 65 TO 90:IF ASC(LEFT$(D$(I),1))=J THEN JJ=J-64:ZK(JJ)=Z(I):J=90
  150. 1015  NEXT
  151. 1018  NEXT
  152. 1026  NZ=INT((NN/10)+0.5):IF NN<10*NZ THEN NZ=INT(NN/10)
  153. 1030  J=0:ZK(27)=Z(1):FOR I=28 TO 36:J=J+1:ZK(I)=Z(J*NZ):NEXT
  154. 1035  IF ZK(36)=0 THEN ZK(36)=Z(NN-5)
  155. 1040  RETURN
  156. 1120  REM         TEMPORARY FILE
  157. 1130  REM
  158. 1155  OPEN FILE$ AS #4 LEN = 356
  159. 1157  GOSUB 2010
  160. 1160  IF ASORT=1 THEN Z(0)=Z(NN):Z(NN+1)=Z(1) ELSE RETURN
  161. 1165  FOR I= 1 TO NN:GET #4, Z(I):IF (Z(I)=VAL(V$(16)) AND Z(I+1)=VAL(V$(14)) AND Z(I-1)=VAL(V$(15))) THEN 1167 ELSE LSET V$(16)=STR$(Z(I)):LSET V$(14) = STR$(Z(I+1)):LSET V$(15) = STR$(Z(I-1))
  162. 1166  FOR J= 1 TO 13 :LSET V$(J)=V$(J):NEXT:PUT #4, Z(I)
  163. 1167  NEXT
  164. 1168  KEND$=V$(16)
  165. 1170  FOR J=3 TO 13:LSET V$(J)="":NEXT:NMID=INT(NN/2+0.5)
  166. 1172  LSET V$(14)=KEND$:LSET V$(15)=STR$(Z(NMID)):LSET V$(16)=STR$(Z(1))
  167. 1174  LSET V$(1)=DATE$:LSET V$(2)=TIME$
  168. 1175  PUT #4,NN+1:CLOSE #4:COLOR 3,0:YSAVE=0:RETURN
  169. 1192  Y$=LEFT$(A$,1)
  170. 1193  CLOSE:OPEN FILM$ FOR OUTPUT AS #3
  171. 1194  WRITE #3, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
  172. 1195  FOR I=1 TO 36:WRITE #3, ZK(I):NEXT:CLOSE #3:RETURN
  173. 1200  OPEN FILE$ AS #4 LEN = 356
  174. 1210  GOSUB 2010
  175. 1220  FIELD #1, 19 AS U$(1), 19 AS U$(2), 18 AS U$(13), 34 AS U$(12), 34 AS U$(3), 34 AS U$(4), 19 AS U$(5), 14 AS U$(6), 16 AS U$(7), 12 AS U$(8), 84 AS U$(9), 19 AS U$(10), 19 AS U$(11), 5 AS U$(14), 5 AS U$(15), 5 AS U$(16)
  176. 1230  IF ASORT=1 THEN Z(0)=Z(NN):Z(NN+1)=Z(1) ELSE 1400
  177. 1240  FOR I= 1 TO NN:GET #4, Z(I):LSET U$(16)=STR$(Z(I)):LSET U$(14) = STR$(Z(I+1)):LSET U$(15) = STR$(Z(I-1))
  178. 1250  FOR J= 1 TO 13 :LSET U$(J)=V$(J):NEXT:PUT #1, Z(I)
  179. 1260  NEXT
  180. 1270  FOR J=3 TO 13:LSET U$(J)="":NEXT
  181. 1280  NMID=INT(NN/2+0.5):LSET U$(14)=STR$(NN):LSET U$(15)=STR$(Z(NMID)):LSET U$(16)=STR$(Z(1))
  182. 1290  LSET U$(1)=DATE$:LSET U$(2)=TIME$
  183. 1300  PUT #1,NN+1:CLOSE #4:CLOSE #1:COLOR 3,0:YSAVE=0:RETURN
  184. 1310  OPEN FILM2$ FOR OUTPUT AS #3
  185. 1320  WRITE #3, Y$,NRED,NN,FILET$,FILT$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
  186. 1325  FOR I=1 TO 36:WRITE #3, ZK(I):NEXT:CLOSE #3:RETURN
  187. 1400  FOR I= 1 TO NN+1:GET #4,I:FOR J=1 TO 16:LSET U$(J)=V$(J):NEXT:PUT #1,I:NEXT
  188. 1410  CLOSE #4:CLOSE #1:COLOR 3,0:YSAVE=0:RETURN
  189. 1500  GOSUB 35010:LOCATE 5,5:COLOR 11,0:PRINT "Primary KEY?  ":GOSUB 1600:L1=VAL(Y$):IF L1= 0 THEN BEEP:GOTO 1500:
  190. 1510  LL=5:LM=20:GOSUB 1660:L1=L3
  191. 1550  GOSUB 35010:LOCATE 6,5:COLOR 11,0:PRINT "Secondary KEY?  ":GOSUB 1600
  192. 1560  LL=6:LM=21:GOSUB 1655:L2=L3
  193. 1570  GOSUB 35010:LOCATE 7,5:COLOR 14,0:PRINT "Please Confirm (Y/[N])?"
  194. 1590  DEF SEG=0: POKE 1050, PEEK(1052)
  195. 1595  Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 1595
  196. 1596  Y$=CHR$(ASC(Y$) AND &HDF):IF Y$="Y" THEN RETURN ELSE LOCATE 5,5:PRINT SPACE$(25):LOCATE 6,5:PRINT SPACE$(25):LOCATE 7,5:PRINT SPACE$(30):BEEP:GOTO 1500
  197. 1600  DEF SEG=0: POKE 1050, PEEK(1052)
  198. 1620  Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 1620 ELSE 1630
  199. 1630  IF LEN(Y$)=2 THEN 1700 ELSE L=VAL(Y$)
  200. 1645  IF ASC(Y$)<48 OR ASC(Y$)>57 THEN BEEP:GOTO 1600
  201. 1646  RETURN
  202. 1650  REM
  203. 1655  IF L= 0 THEN L3=0:LOCATE LL,LM:PRINT "":RETURN
  204. 1660  ON L GOTO 1661,1662,1663,1664,1665,1666,1667,1668,1669
  205. 1661  LOCATE LL,LM:PRINT "NAME":L3=2:RETURN
  206. 1662  LOCATE LL,LM:PRINT "CITY":L3=5:RETURN
  207. 1663  LOCATE LL,LM:PRINT "STATE":L3=6:RETURN
  208. 1664  LOCATE LL,LM:PRINT "ZIPCODE":L3=7:RETURN
  209. 1665  LOCATE LL,LM:PRINT "BIRTHDAY":L3=8:RETURN
  210. 1666  LOCATE LL,LM:PRINT "HOME PHONE":L3=10:RETURN
  211. 1667  LOCATE LL,LM:PRINT "OFFICE PHONE":L3=11:RETURN
  212. 1668  LOCATE LL,LM:PRINT "NOTES":L3=9:RETURN
  213. 1669  LOCATE LL,LM:PRINT "COMPANY":L3=3:RETURN
  214. 1700  IF ASC(RIGHT$(Y$,1))= 68 THEN 30000
  215. 1710  IF ASC(RIGHT$(Y$,1))=113 THEN 161 ELSE BEEP:GOTO 1600
  216. 2000  CLOSE :OPEN FILE$ AS #4 LEN = 356
  217. 2010  FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
  218. 2020  RETURN
  219. 2100  REM
  220. 2200  REM
  221. 2210  G=NN
  222. 2220  WHILE G>1
  223. 2230  G=INT(G/2):MX=NN-G:PRINT " .";:SOUND 523,1
  224. 2240  F=0
  225. 2250  FOR I=1 TO MX:P=I+G
  226. 2270  IF D$(I)<=D$(P) THEN 2300
  227. 2280  SWAP D$(I),D$(P):F=1
  228. 2300  NEXT
  229. 2310  IF F>0 THEN 2240
  230. 2315  WEND
  231. 2320  YSAVE=1:ASORT=1:RETURN
  232. 4000  FILN$ =FIL$+".NTE"
  233. 4005  IF NKEY$(1)="" OR NKEY$(1)=CHR$(15) THEN 4010 ELSE 4036
  234. 4010  OPEN FILN$ FOR INPUT AS #2
  235. 4030  FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
  236. 4035  CLOSE #2:NP=I-1
  237. 4036  O$=CHR$(219):O2$=CHR$(221):O1$="FUNCTION KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F4: SORT menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"+O2$+"F9:SAVE"
  238. 4040  CLS:LOCATE 25,1:COLOR 0,7:PRINT O1$;:COLOR 3,0
  239. 4050  LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
  240. 4060  LOCATE 20,28:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
  241. 4065  Y$=INKEY$:IF Y$="" THEN 4065
  242. 4066  COLOR 3,0
  243. 4070  OPEN FILN$ FOR OUTPUT AS #2
  244. 4080  FOR I= 1 TO NP:WRITE #2,NKEY$(I),NOTE$(I):NEXT
  245. 4085  WRITE #2, CHR$(15),CHR$(15)
  246. 4090  CLOSE #2:RETURN 300
  247. 5000  Y1$="4":YSAVE=1:GOSUB 255
  248. 5040  RETURN 320
  249. 5200  ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(9) GOSUB 5000:KEY(9) ON:CLOSE
  250. 5210  ON KEY(1) GOSUB 144:ON KEY(2) GOSUB 140:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 141:KEY(3) ON:ON KEY(4) GOSUB 320:KEY(4) ON:ON KEY(5) GOSUB 142:ON KEY(6) GOSUB 143:KEY(6) ON:KEY(5) ON
  251. 5220  RETURN
  252. 20000  N$=STR$(NN):A$="ADSORT":CHAIN "ADNAME",20000,ALL
  253. 30000  CLS:LOCATE 25,25:COLOR 1,7,0:PRINT "INTEGRATED SOFTWARE SYSTEMS":COLOR 3,0:LOCATE 1,1
  254. 30010  OPEN "AD.HLP" AS #2 LEN=78
  255. 30020  FIELD #2, 78 AS A$
  256. 30030  I=1:M=1
  257. 30040  GET #2,I
  258. 30090  IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30150
  259. 30150  LOCATE 24,27:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
  260. 30160  Y$=INKEY$:IF Y$="" THEN 30160
  261. 30170  CLOSE #2:GOTO 300
  262. 35000  IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
  263. 35010  IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
  264. 35030  IF SND$="N" THEN RETURN ELSE SOUND 523.25,2:SOUND 30000,3:SOUND 523.25,2:RETURN
  265. 35040  IF SND$="N" THEN RETURN ELSE BEEP:RETURN
  266.